/*
 * Created on 24/06/2005
 *
 */
package com.master.bd.calculo_frete;

import java.sql.*;

import com.master.ed.*;
import com.master.root.*;
import com.master.util.*;
import com.master.util.bd.*;

public class Calcula_Frete_Lote_Faturamento
    extends Calcula_Frete {

  public Calcula_Frete_Lote_Faturamento (ExecutaSQL executasql) {
    super (executasql);
    // //  ("Calcula_Frete_Lote_Faturamento 1");
  }

  public void calcula (Calcula_FreteED ed) throws Excecoes {
    this.totaliza_Receita (ed);
    this.totaliza_Custo (ed);
  }

  protected void totaliza_Receita (Calcula_FreteED ed) throws Excecoes {
    ResultSet rsDoc = null;
    try {

      sql = " SELECT SUM (Conhecimentos.VL_Total_Frete) as vl_movimento " +
          " FROM Documentos_Lotes_Faturamentos, Conhecimentos " +
          " WHERE  Conhecimentos.oid_Conhecimento = Documentos_Lotes_Faturamentos.oid_Conhecimento " +
          " AND  Documentos_Lotes_Faturamentos.oid_Lote_Faturamento = '" + ed.getOID_Lote_Faturamento () + "'" ;

       ////  (" sql exclui nao impressos " + sql);

      rsDoc = this.executasql.executarConsulta (sql);

      while (rsDoc.next ()) {

        Tipo_Movimento = "FP";
        VL_Movimento = rsDoc.getDouble ("vl_movimento");

        // //  ("achou tipo mov >> " + rsDoc.getDouble ("vl_movimento"));
        ed.setCD_Tipo_Movimento (Tipo_Movimento);
        ed.setOID_Tabela_Frete ("");
        ed.setVL_Movimento (VL_Movimento);
        this.incluiMovimento (ed);

      }

    }
    catch (SQLException e) {
      throw new Excecoes (e.getMessage () , e , getClass ().getName () , "totalizaCusto(String OID_Conhecimento)");
    }
  }

  protected void totaliza_Custo (Calcula_FreteED ed) throws Excecoes {
    ResultSet rsDoc = null;
    try {

      sql = " SELECT SUM (Movimentos_Conhecimentos.VL_Movimento) as vl_movimento, Tipos_Movimentos.CD_Tipo_Movimento " +
          " FROM Movimentos_Conhecimentos, Documentos_Lotes_Faturamentos, Tipos_Movimentos " +
          " WHERE  Movimentos_Conhecimentos.oid_Conhecimento = Documentos_Lotes_Faturamentos.oid_Conhecimento " +
          " AND  Movimentos_Conhecimentos.oid_Tipo_Movimento = Tipos_Movimentos.oid_Tipo_Movimento " +
          " AND Tipos_Movimentos.DM_Tipo_Movimento = 'D' " +
          " AND  Documentos_Lotes_Faturamentos.oid_Lote_Faturamento = '" + ed.getOID_Lote_Faturamento () + "'" +
          " GROUP BY  Tipos_Movimentos.CD_Tipo_Movimento ";

      // //  (" sql exclui nao impressos " + sql);

      rsDoc = this.executasql.executarConsulta (sql);

      while (rsDoc.next ()) {

        Tipo_Movimento = rsDoc.getString ("CD_Tipo_Movimento");
        VL_Movimento = rsDoc.getDouble ("vl_movimento");

        // //  ("achou tipo mov >> " + rsDoc.getString ("CD_Tipo_Movimento"));
        // //  ("achou tipo mov >> " + rsDoc.getDouble ("vl_movimento"));
        ed.setCD_Tipo_Movimento (Tipo_Movimento);
        ed.setOID_Tabela_Frete ("");
        ed.setVL_Movimento (VL_Movimento);
        this.incluiMovimento (ed);

      }

    }
    catch (SQLException e) {
      throw new Excecoes (e.getMessage () , e , getClass ().getName () , "totalizaCusto(String OID_Conhecimento)");
    }
  }


}
